本書是《超圖解Arduino互動設計入門》系列作品,專為想要深度運用ESP32的讀者所撰寫,從基本的GPIO、內建的磁力感測器、電容觸控開關、物聯網IoT運用、低功率藍牙、低耗電睡眠模式、底層FreeRTOS作業系統等等,都透過作者精心設計的實驗,以及本系列作品最具特色的超圖解方式說明,包含以下主題:
□內建電容觸控開關與霍爾效應磁力感測器
□硬體/計時器中斷處理與記憶體配置
□OLED顯示器中英文顯示以及圖形顯示
□QRcode製作與顯示
□Wi-Fi無線網路物聯網IoT應用
□HTTPGET/POST與網路API使用
□動態資料圖表網頁
□WebSocket網路即時資料傳輸
□RTC即時時鐘與GPS精準對時
□ESP32睡眠模式與定時喚醒、觸碰喚醒
□SPIFFS檔案系統與SD記憶卡的使用
□網路音樂/podcast串流播放、文字轉語音播放
□mDNS區域網域名稱
□BLE低功耗藍牙應用
□BLE藍牙鍵盤、滑鼠人機介面輸入裝置製作
□藍牙立體聲播放器
□經典藍牙序列埠通訊(SPP)
□藍牙裝置電量顯示
□HTTPS加密網路連線與網站建置
□WebBluetooth網頁藍牙傳輸
□Mesh網路實作
□FreeRTOS作業系統
□FreeRTOS任務排程
□看門狗(watchdog)
□FreeRTOS訊息佇列
□FreeRTOS二元旗號(semaphore)與互斥旗號(mutex)
□OTA無線韌體更新
□物件導向程式設計與自製程式庫
□Backtrace除錯訊息解析
□電壓偵測與電流偵測
在學習的過程中,也帶著讀者動手做出許多有趣實用的實驗,包括:
□煙霧濃度偵測
□磁石開關
□人體移動警報器
□即時天氣顯示器
□網頁式遙控調光器
□網頁動態圖表
□休眠省電定時上傳感測資料
□網路收音機
□氣溫語音播報機
□藍牙立體聲音播放器
□藍牙多媒體旋鈕控制器
□藍牙多媒體鍵盤
□電腦桌面自動切換器
□投籃遊戲機
□網頁式藍牙遙控車
本書特色:
ESP32是一系列高效能雙核心、低功耗、整合Wi-Fi與藍牙的32位元微控器,適合物聯網、可穿戴設備與行動裝置應用。ESP32的功能強大,涉及的程式以及應用場域相關背景知識也較為廣泛,本書的目的是把晦澀的技術內容,用簡單可活用的形式傳達給讀者。
ESP32支援多種程式語言,本書採用最受電子Maker熟知的Arduino語言。但因為處理器架構不同,所以某些程式指令,像是控制伺服馬達以及發出音調的PWM輸出指令,操作語法和典型的Arduino(泛指在Arduino官方的開發板,如:Uno板執行的程式)不一樣,這意味著某些Arduino範例和程式庫無法直接在ESP32上執行。
相對地,ESP32的獨特硬體架構也需要專門的程式庫和指令才能釋放它的威力,例如,低功耗藍牙(BLE)無線通訊、可輸出高品質數位音效的I2S(序列音訊介面)、DAC(數位類比轉換器)、Mesh(網狀)網路、HTTPS安全加密連網...等。
更有意思的是,ESP32開發工具引入了FreeRTOS即時作業系統,可運行多工任務(同時執行多個程式碼),而ESP32Arduino程式其實就是運作在FreeRTOS上的一個任務。因此,書中除了含括Arduino語言外,也會適時帶入ESP32官方開發工具鏈ESP-IDF的功能,除了可操控底層FreeRTOS作業系統外,也可運用Arduino中未提供的ESP32專屬功能。
本書假設讀者已閱讀過《超圖解Arduino互動設計入門》第三或四版,所以本書的內容不包含基本電子學(像電阻分壓電路、電晶體開關電路、運算放大器的電路原理分析..等),也不教導Arduino程式入門(如:條件判斷、迴圈、陣列、指標..等),而是以《超圖解Arduino互動設計入門》為基礎,將篇幅依照ESP32應用的需要,在程式設計方面說明物件導向(OOP)、類別繼承、虛擬函式、回呼函式、指標存取結構、堆疊與遞迴...等進階主題。
另外,本書也不僅僅只是探討Arduino程式,由於微控器是物聯網應用當中的一個環節,以『透過網頁瀏覽器控制某個裝置』的應用來說,呈現在瀏覽器的內容是採用HTML和JavaScript語言開發的互動網頁,和微控器的Arduino程式語言完全不同,在相關章節也會對這些主題有所著墨。
開發微電腦應用程式,偶爾會用到一些小工具程式,例如,呈現在OLED顯示器上的中英文字體與影像,都必須先經過『轉檔』才能嵌入Arduino程式碼,除了使用現成的工具軟體,書中也示範採用廣受歡迎的Python語言編寫批次轉換字體和影像檔的工具程式。書中提及的Python程式屬於進階應用,是假設讀者閱讀過《超圖解Python程式設計入門》,具備運用Python操作檔案目錄、解析命令行參數、轉換影像、執行緒...等相關概念後的延伸學習,可讓讀者練習善用各種程式語言綜合實踐的方法。
另外,為了方便讀者查詢書中內容,本書特別準備了線上版本的索引,避免一般中文書缺乏索引的問題,讓讀者可以快速找到所需的主題。希望這本厚實的作品能夠成為各位實作專案時最佳的工具書。
FREERTOS 互動設計 OLED 程式設計 物聯網 程式 運用 PYTHON MAKER IOT ARDUINO 應用 ESP32 藍牙 網路 JAVASCRIPT HTML SD API ESP32ARDUINO 主題 GPS 氣溫 顯示 作業系統